Help - slouceni dvou BMP

Otázka od: Petr SZNAPKA, Gradiva a.s.

27. 11. 2002 12:23

Potreboval bych najit reseni pro slouceni dvou BMP o velikostech např.
1800x1200 pixelů. V sekcenci se provadi slouceni cca 100 BMP.

Vstupni podminky :

1/ soubor je na lezato
2/ obrazky sloucit do jedne BMP oddelenymi cca 25 pixely
3/ obrazky mají uz stejnou vysku, ale mohou mit rozdilnou vysku
3/ jedna se o 24-bitove BMP


Zkousel jsem rezim přes canvas.strechdraw ale je to pomerne pomale.
Reseni prostrednictvim scanline mi nevyhovuje,protože musim druhou
bitmapu umistovat s urcitym posunem a to scanline nejde nebo jsem
nenasel.

Petr

Odpovedá: Delphin

27. 11. 2002 14:33

> Zkousel jsem rezim přes canvas.strechdraw ale je to pomerne pomale.
> Reseni prostrednictvim scanline mi nevyhovuje,protože musim druhou
> bitmapu umistovat s urcitym posunem a to scanline nejde nebo jsem
> nenasel.

Se scanline to jde nejak takto.

type
 PBytes=^TBytes;
 TBytes=array [0..1000] of byte;

move(SourceBMP.ScanLine[y]^,PBytes(DestBMP.ScanLine[y])^[posun],3*sirka);

Odpovedá: Peter Surovy

27. 11. 2002 15:38

Ahoj
----- Original Message -----
From: "Petr SZNAPKA, Gradiva a.s." <sznapka@gradiva.cz>
Sent: Wednesday, November 27, 2002 9:06 AM
> Zkousel jsem rezim přes canvas.strechdraw ale je to pomerne pomale.
> Reseni prostrednictvim scanline mi nevyhovuje,protože musim druhou
> bitmapu umistovat s urcitym posunem a to scanline nejde nebo jsem
> nenasel.
-- mozno som spravne nepochopil co sa pytas
ale nedalo by sa to tak ze vytvoris
novu bitmapu kde;
NovaBitmap.witdh:=Bitmapa1.width + Bitmapa2.width+25;

a potom do Canvasu tej novej cez
CopyRect nakopirujes staru jednu a potom druhu?


PS